1. Field
The present disclosure relates generally to software defined radios and, in particular, to pre-compiling and compiling operations for a software defined radio. Still more particularly, the present disclosure relates to a method and apparatus for creating profile structures during build time that can be used to deploy components on a software defined radio during runtime.
2. Background
A radio communications system may be used to send and/or receive data using radio waves. Radio waves include the electromagnetic waves having frequencies between about 3 kilohertz and about 300 gigahertz. These frequencies are referred to as radio frequencies (RF).
A software defined radio (SDR) is a radio communications system in which one or more of the physical layer functions of the radio communications system are defined by software, firmware, or a combination of the two running on one or more hardware devices. Different types of hardware devices may be used to run the software and/or firmware. These different types of hardware devices may include, but are not limited to, a field programmable gate array (FPGA), a digital signal processor (DSP), a general purpose processor (GPP), a programmable system on chip (SoC), and/or other types of programmable processor units.
A software defined radio is hereafter referred to as a radio. A waveform may be deployed on the radio to perform modulation when transmitting radio waves from a radio and/or demodulation when receiving radio waves at the radio. As used herein, a “waveform” is a radio function that includes everything used to describe a specific radio signal. A waveform includes a set of components that define, for example, without limitation, how a waveform is to be generated, encoded, modulated, filtered, and/or processed in some other manner. Deploying a waveform on a radio means deploying the set of components that form that waveform on the radio.
The waveform used for modulation and/or demodulation may be selected based on the channel used to transmit and/or receive data. As used herein, a “channel” is a specified range of frequencies for the radio waves being transmitted and/or received. The waveform that best matches the conditions for the channel is selected. These conditions may include, for example, a maximum energy capacity, a bandwidth, a level of noise, and/or other conditions for the channel.
The deployment of a waveform on a radio occurs during runtime. The Software Communications Architecture (SCA) is oftentimes used as the framework for deploying software components on radios and managing the lifecycle of these radios. With these types of radios, the Software Communications Architecture is used to define profiles that dictate the behavior of this framework. These profiles may be initially created using the extensible markup language (XML).
With currently available radios, the Software Communications Architecture profiles may be installed, parsed, interpreted, and enacted by the framework on the radio during runtime. However, the framework software currently available for performing these types of operations at runtime may be more expensive and/or heavyweight than desired when considering the reduced size, weight, and power (SWAP) requirements for radios. Additionally, performing these operations at runtime may slow down radio startup times and waveform deployment times.
In some cases, the Software Communications Architecture profiles may be parsed prior to runtime. In other words, these profiles may be parsed offline, or separate from the radio. For example, the profiles may be parsed and converted from the extensible markup language into a simpler text format to form parsed profiles. However, with these types of radios, the interpretation of these parsed profiles is still performed on the radio during runtime. In other words, the parsed profiles may only be further converted into profiles that the radio can use to actually deploy components during runtime. This type of process may not reduce radio startup times or waveform deployment times as much as desired. Therefore, it would be desirable to have a method and apparatus that take into account at least some of the issues discussed above, as well as other possible issues.